Network devices, such as bridges and routers, forward packets through a network based on addresses in the packets. A network device typically includes a plurality of ports coupled to different network links. The network device may receive a packet via one port and process address information in a header of the packet to decide via which other port or ports the network switch should transmit the packet. The network device then enqueues the packet, or a packet descriptor associated with the packet, in one or more transmit queues corresponding to the one or more ports, for subsequent transmission of the packets via the one or more determined ports. When the packet is scheduled for transmission via a port, the network device dequeues the packet, or the packet descriptor associated with the packet, from the corresponding transmit queue and forwards the packet to the port for transmission of the packet via the port.
Network devices often implement various traffic management and congestion avoidance techniques to control flow of traffic to a network device when congestion occurs due, for example, to lack of sufficient resources in the network device, such as buffer space available for queueing packets awaiting transmission from the network device. Such traffic management mechanisms are conventionally triggered in a network device when use of a resource in the network device exceeds a statically defined, predetermined, threshold.